package com.yangyang.java.demo;

import java.util.Scanner;

public class Test01 {

	public static void main(String[] args) {
		//test01();
		//test02();
		//test03();
		//test04();
		//test05();
		//test06();
		//test07();
		//test08();
		//test09();
		//test10();
		//test11();
	}
	
	private static void test01() {
		int i=0;   //声明循环参量
		//循环20次，每次输出15个
		while(i<20) {	//循环条件为 i < 20
			System.out.println("************");
			i++;	//循环参数自增1
		}	
	}
	
	private static void test02() {
		int userSel = -1;     //用户选择输入的参数
		
		while(true) {	//使用while(true),再单个模块功能执行结束后，重新输出主界面，继续循环
			System.out.println("1.输入数据");
			System.out.println("2.输出数据");
			System.out.println("3.退出程序");
			System.out.println("请输入你的选择(只能输入1、2、3):");
			
			Scanner input = new Scanner(System.in);
			userSel = input.nextInt();
			switch(userSel) {			
			case 1:
				System.out.println("执行1.输入数据模块");
				System.out.println("**************");
				break;
			case 2:
				System.out.println("执行2.输出数据模块");
				System.out.println("**************");
				System.out.println("**************");
				break;
			case 3:
				System.out.println("结束程序！");
				break;
			default:
				System.out.println("输入数据不正确！");
				break;
			}
			if(userSel == 3) {
				break;
			}

		}	
	}
	
	private static void test03() {
		//使用字符串String存储密码，后面的课程会详细介绍String类
		String userPass = "";	//用户输入的密码
		final String PASSWORD = "123456";	//正确的密码为123456
		 Scanner input= new Scanner(System.in);
		do {
			System.out.println("请输入程序密码：");
			userPass = input.nextLine();	//从控制台获取用户输入密码
			System.out.println();
			//字符串的equals()方法用于判断俩个字符串的值是否相同
		}while(!userPass.equals(PASSWORD));//密码输入不正确，继续循环，重新输入
		System.out.println("程序密码正确，继续执行！");
	}
	
	private static void test04() {
		int i; //声明循环变量
		
		//循环20次，每次输出20个*号
		for(i = 0; i < 20; i++) {
			System.out.println("*******************");
		}
	}
	
	private static void test05() {
		int sum = 0; //存放和
		//循环参数从1开始，步长为2(奇数和)，循环条件为i <= 100
		for(int i =1; i <= 100;i = i+2) {
			sum = sum + i;
		}
		System.out.println("1-100之间所有奇数的和为：" +sum);
	}
	
	private static void test06() {
		int highNum = 0;	//底薪大于等于6000的java工程师人数
		int sumBasSalary = 0;	//高薪人员底薪总和
		
		Scanner input = new Scanner(System.in);
		for(int i=1; i <= 10; i++) {
			System.out.println("请输入第" + i +"个工程师底薪:");
			int basSalary = input.nextInt();
			if(basSalary >= 6000) {
				highNum +=1;	//高薪人员计数
				sumBasSalary += basSalary;	//高薪人员底薪求和
			}
		}
		System.out.println("10个Java工程师中，高薪人员比例为：" + highNum/10.0*100 +"%");
		System.out.println("高薪人员平均底薪为：" + 1.0*sumBasSalary/highNum);
	}

	private static void test07() {
		int i,j;	//声明循环参数
		for(i = 1; i <= 20; i++) {	//循环20次
			for(j =1; j <= i; j++) {	//每次循环当次个*
				System.out.print("*");
			}
			System.out.println();
		}
	}

	private static void test08() {
		int i,j;	//声明循环参数
		int count = 0;	//设置一个计数器变量
		outer:for(i = 2; i < 100; i++ ) {	//从2开始，逐个递增到进行判断
			//Math.sqrt(i)方法是求i的平方根;
			for(j=2; j <= Math.sqrt(i);j++) {	//从2开始，逐渐递增到外循环的平方根
				if( i % j == 0) {	//外循环数除以内循环数，余0则非质数，跳出内循环
					continue outer;	//跳出内循环，调到outer标识的位置继续循环
				}
			}
			System.out.print(i + "\t");		//否则显示质数
			count++;	
			if(count % 10 == 0) {
				System.out.println();
			}			
		}
	}

	private static void test09() {
		int firNum;
		int secNum;
		
		Scanner input =new Scanner(System.in);
		System.out.println("请输入一个整数：");
		int maxNum = input.nextInt();
		System.out.println("数" + maxNum + "的乘法表为：");
		for(firNum = 0,secNum = maxNum;firNum <= maxNum;secNum--,firNum++) {
			System.out.println(firNum + "*" + secNum + "=" + firNum*secNum);
		}
	}

	private static void test10() {
		for(int i=1;i<=9;i++) { //i确定行数，j确定列数
			for(int j=1;j<=i;j++) {
				//每一次内循环输出一行
				System.out.print(i + " * " + j + " = " + i*j +"\t");
			}
			System.out.println(); //完成一次内循环换一次行
		}
	}

	private static void test11() {
		double engSalary = 0.0;	//java工程师月薪
		int basSalary = 3000;  //底薪
		int comResult = 100;	//月工作完成分数(最小值为0，最大值为150)
		double workDay = 22;   //月实际天数
		double insurance = 30000*0.105; //月应扣保险数
		
		Scanner input = new Scanner(System.in);//从控制台获取输入的对象
		int userSel = -1;//用户选择的数
		while(true) {//使用while(true),在单个模块功能执行结束后，重新输出主界面，继续循环
			//显示主界面
			System.out.println("-------------------------------");
			System.out.println("|             蓝桥Java工程师管理系统                                     | ");
			System.out.println("-------------------------------");
			System.out.println("1.输入java工程师资料");
			System.out.println("2.删除指定java工程师资料");
			System.out.println("3.查询指定java工程师资料");
			System.out.println("4.修改指定java工程师资料");
			System.out.println("5.计算java工程师的月薪");
			System.out.println("6.保存新添加的工程师资料");
			System.out.println("7.对java工程师信息排序（1编号升序，2姓名升序）");
			System.out.println("8.输出所有java工程师信息");
			System.out.println("9.清空所有Java工程师数据");
			System.out.println("10.打印java工程师数据报表");
			System.out.println("11.从文件重新导入java工程师数据");
			System.out.println("0.结束（编辑工程师信息后提示保存）");
			System.out.println("请输入你的选择：");
			userSel = input.nextInt();
			switch(userSel) {
				case 1:
					System.out.println("本模块功能未实现");
					break;
				case 2:
					System.out.println("本模块功能未实现");
					break;
				case 3:
					System.out.println("本模块功能未实现");
					break;
				case 4:
					System.out.println("本模块功能未实现");
					break;
				case 5:
					System.out.println("本模块功能未实现");
					break;
				case 6:
					System.out.println("请输入java工程师底薪：");
					basSalary = input.nextInt();//从控制台获取输入的底薪，将其值赋给basSalary
					System.out.println("请输入java工程师月完成工作分数（最小值为0，最大值为150）：");
					comResult = input.nextInt();//从控制台获取输入的月工作完成数，赋值给comResult
					System.out.println("请输入java工程师月实际工作天数：");
					workDay = input.nextInt();//从控制台获取输入的月实际工作天数，赋值给workDay
					System.out.println("请输入java工程师月应扣保险数：");
					insurance = input.nextInt();//从控制台获取输入的月应扣保险数，赋值给insurance
					/*
					 * 工程师月薪 = 底薪 + 底薪*25%*月工作完成数/100 + 15*workDay - insurance; 
					*/
					engSalary = basSalary + basSalary*0.25*comResult/100 + 15*workDay - insurance;
					System.out.println("java工程师月薪为" + engSalary);
					break;
				case 7:
					System.out.println("本模块功能未实现");
					break;
				case 8:
					System.out.println("本模块功能未实现");
					break;
				case 9:
					System.out.println("本模块功能未实现");
					break;
				case 10:
					System.out.println("本模块功能未实现");
					break;
				case 11:
					System.out.println("本模块功能未实现");
					break;
				case 0:
					System.out.println("程序结束！");
					break;
				default :
					System.out.println("数据输入错误！");
					break;
			}
			if(userSel == 0) { //当用户输入0时，退出while循环，结束程序
				break;
			}
		}
		
	}
}
